/**
 * 编码测试脚本 - 使用子进程设置编码
 */

const { spawn } = require('child_process');
const fs = require('fs');
const path = require('path');

// 设置环境变量
process.env.NODE_OPTIONS = '--experimental-modules';
process.env.NODE_ICU_DATA = '';
process.env.LANG = 'zh_CN.UTF-8';

// 确保日志目录存在
const logDir = path.join(process.cwd(), 'logs');
if (!fs.existsSync(logDir)) {
  fs.mkdirSync(logDir, { recursive: true });
}

// 创建一个子进程来运行chcp命令设置代码页
const chcp = spawn('cmd', ['/c', 'chcp', '65001'], { stdio: 'inherit' });

chcp.on('close', (code) => {
  console.log(`chcp命令执行完成，退出码: ${code}`);
  
  // 测试直接写入文件
  const testMessage = '这是直接写入文件的中文测试';
  const logFilePath = path.join(logDir, 'encoding-test2.log');

  // 使用UTF-8编码写入文件
  fs.writeFileSync(logFilePath, testMessage + '\n', { encoding: 'utf8' });

  console.log('直接写入文件完成，内容：', testMessage);

  // 验证读取
  const content = fs.readFileSync(logFilePath, { encoding: 'utf8' });
  console.log('读取文件内容：', content);
});